PL/SQL, Oracle Database-এর একটি শক্তিশালী প্রোগ্রামিং ভাষা, যা object-oriented প্রোগ্রামিং ধারণা গ্রহণ করে। এটি Object Types এবং Object-Oriented বৈশিষ্ট্যগুলো সমর্থন করে, যা ডেভেলপারদের ডেটাবেসে অবজেক্ট-ভিত্তিক মডেল তৈরি করতে সহায়ক। PL/SQL Object Types ব্যবহার করার মাধ্যমে আপনি ডেটাবেসে জটিল ডেটা কাঠামো তৈরি করতে পারেন, যা সাধারণভাবে Structured Types বা Object Types নামে পরিচিত।
PL/SQL Object Types হল ব্যবহারকারী-সংজ্ঞায়িত ডেটা টাইপ, যা একটি অবজেক্টের মতো আচরণ করে। এগুলি সাধারনত অবজেক্টের অ্যাট্রিবিউট এবং পদ্ধতিগুলি ধারণ করে। একটি Object Type একটি Class এর মতো কাজ করে এবং একটি Instance হিসাবে ব্যবহৃত হয়।
নিচে একটি সাধারণ Object Type তৈরি করার উদাহরণ দেওয়া হল, যেখানে একটি Employee
অবজেক্ট টাইপ তৈরি করা হয়েছে:
-- Object Type Specification
CREATE OR REPLACE TYPE EmployeeType AS OBJECT (
emp_id NUMBER,
emp_name VARCHAR2(50),
emp_salary NUMBER,
MEMBER FUNCTION get_salary RETURN NUMBER
);
/
-- Object Type Body
CREATE OR REPLACE TYPE BODY EmployeeType AS
MEMBER FUNCTION get_salary RETURN NUMBER IS
BEGIN
RETURN emp_salary;
END get_salary;
END;
/
get_salary
মেথডের বাস্তবায়ন করেছি, যা emp_salary
রিটার্ন করে।Object Type তৈরি করার পরে, আপনি এটি ব্যবহার করে Object Instances তৈরি করতে পারেন, যা অ্যাট্রিবিউটগুলির মান ধারণ করে এবং মেথড ব্যবহার করতে পারে।
DECLARE
-- Declare an object instance of EmployeeType
emp_obj EmployeeType;
BEGIN
-- Instantiate the object
emp_obj := EmployeeType(1001, 'John Doe', 50000);
-- Access the object attributes and methods
DBMS_OUTPUT.PUT_LINE('Employee ID: ' || emp_obj.emp_id);
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || emp_obj.emp_name);
DBMS_OUTPUT.PUT_LINE('Employee Salary: ' || emp_obj.get_salary);
END;
/
EmployeeType
এর একটি অবজেক্ট ইনস্ট্যান্স।emp_obj.emp_id
এবং emp_obj.get_salary
।PL/SQL-এ Object-Oriented Programming (OOP) ধারণাগুলি প্রয়োগ করা সম্ভব। অবজেক্ট টাইপ তৈরি করার মাধ্যমে আপনি encapsulation, inheritance, এবং polymorphism প্রয়োগ করতে পারেন।
Encapsulation হল ডেটা এবং সেই ডেটার সাথে কাজ করার জন্য ব্যবহৃত মেথডগুলির একত্রিতকরণ। PL/SQL এর Object Types-এর মধ্যে encapsulation নিশ্চিত করতে আপনি attributes এবং methods একসাথে সংজ্ঞায়িত করেন।
PL/SQL Object Types তে আপনি এক Object Type থেকে অন্য Object Type তৈরি করতে পারেন। এটি inheritance বা উত্তরাধিকার ধারণা চালু করে। উদাহরণস্বরূপ, একটি Employee অবজেক্ট থেকে একটি Manager অবজেক্ট তৈরি করা যায়।
Polymorphism অর্থ একই মেথডের ভিন্ন বাস্তবায়ন হতে পারে, যা overloading বা overriding এর মাধ্যমে সম্ভব।
ধরা যাক, আমরা একটি Manager
অবজেক্ট তৈরি করতে চাই যা Employee
অবজেক্ট থেকে উত্তরাধিকার পাবে।
-- Create a Manager Object Type inheriting from EmployeeType
CREATE OR REPLACE TYPE ManagerType UNDER EmployeeType (
dept_id NUMBER,
MEMBER FUNCTION get_department RETURN NUMBER
);
/
-- Create the Body for ManagerType
CREATE OR REPLACE TYPE BODY ManagerType AS
MEMBER FUNCTION get_department RETURN NUMBER IS
BEGIN
RETURN dept_id;
END get_department;
END;
/
এখানে:
EmployeeType
থেকে উত্তরাধিকার করেছে এবং তার সাথে একটি নতুন অ্যাট্রিবিউট (dept_id) এবং মেথড (get_department) যোগ করেছে।inheritance
ব্যবহার করে।PL/SQL এর Object Types এবং Object-Oriented বৈশিষ্ট্যগুলি ডেটাবেসের মধ্যে জটিল ডেটা কাঠামো তৈরি এবং পরিচালনা করার জন্য অত্যন্ত কার্যকরী। এগুলি ডেভেলপারদের অবজেক্ট-ভিত্তিক ডেটাবেস মডেল তৈরি করতে সহায়ক, যা প্রকল্পগুলির স্কেল এবং উন্নতির জন্য উপযুক্ত।
PL/SQL Object Types হল এক ধরনের ডেটা টাইপ যা অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ধারণাকে সমর্থন করে। এই ধরনের ডেটা টাইপ ব্যবহার করে আপনি কাস্টম ডেটা স্ট্রাকচার তৈরি করতে পারেন, যা Attributes এবং Methods ধারণ করতে পারে। এটি আপনাকে একটি অবজেক্টের মতো ডেটা এবং ফাংশনালিটি সংরক্ষণ এবং পরিচালনা করার সুযোগ দেয়।
এটি Object-Oriented Programming (OOP) এর ধারণাকে PL/SQL-এ অন্তর্ভুক্ত করে, যেখানে আপনি একাধিক অ্যাট্রিবিউট ও কার্যকারিতা (Methods) সহ একত্রিত ডেটা ধারণ করতে পারেন।
PL/SQL Object Types ব্যবহারের মাধ্যমে আপনি ডেটাবেসে একটি বাস্তববিশ্বের অবজেক্টের প্রতিনিধিত্ব করতে পারেন এবং সেই অনুযায়ী কোড লেখার সময় একটি ক্লাস বা অবজেক্টের মতো কাজ করতে পারেন।
PL/SQL-এ একটি Object Type দুটি প্রধান অংশে বিভক্ত:
-- 1. Object Type Specification (ওবজেক্ট টাইপের ঘোষণা)
CREATE OR REPLACE TYPE <object_type_name> AS OBJECT (
attribute1 <data_type>,
attribute2 <data_type>,
...
MEMBER FUNCTION <function_name> RETURN <data_type>
);
-- 2. Object Type Body (ওবজেক্ট টাইপের শরীর)
CREATE OR REPLACE TYPE BODY <object_type_name> AS
MEMBER FUNCTION <function_name> RETURN <data_type> IS
BEGIN
-- function logic
END <function_name>;
END;
ধরা যাক, আমরা একটি Employee
নামক অবজেক্ট টাইপ তৈরি করতে চাই, যার দুটি অ্যাট্রিবিউট হবে: emp_id
এবং emp_name
।
-- Object Type Declaration
CREATE OR REPLACE TYPE Employee AS OBJECT (
emp_id NUMBER,
emp_name VARCHAR2(50)
);
এখানে, আমরা একটি Employee
নামক অবজেক্ট টাইপ ঘোষণা করেছি, যার দুটি অ্যাট্রিবিউট রয়েছে: emp_id
এবং emp_name
।
এখন, আমরা Employee অবজেক্ট টাইপের জন্য একটি মেথড তৈরি করি, যা কর্মচারীর নামের দৈর্ঘ্য ফেরত দেবে।
-- Object Type Body
CREATE OR REPLACE TYPE BODY Employee AS
MEMBER FUNCTION get_name_length RETURN NUMBER IS
BEGIN
RETURN LENGTH(emp_name);
END get_name_length;
END;
এখানে, get_name_length
মেথড emp_name
এর দৈর্ঘ্য ফেরত দিবে।
এখন, যখন একটি Employee
অবজেক্ট তৈরি করতে হবে, তখন সেই অবজেক্টের অ্যাট্রিবিউট এবং মেথড ব্যবহার করা যাবে।
DECLARE
e Employee; -- Employee টাইপের একটি অবজেক্ট
BEGIN
-- অবজেক্টের ভ্যালু সেট করা
e := Employee(101, 'John Doe');
-- মেথড কল করা
DBMS_OUTPUT.PUT_LINE('Employee name length: ' || e.get_name_length);
END;
এখানে, আমরা একটি Employee
অবজেক্ট তৈরি করেছি এবং তার get_name_length
মেথড ব্যবহার করেছি। এই কোডটি John Doe
নামের দৈর্ঘ্য প্রিন্ট করবে, অর্থাৎ 8।
PL/SQL এর Object Types একটি শক্তিশালী বৈশিষ্ট্য যা আপনাকে ডেটাবেসে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ধারণা ব্যবহার করতে সহায়তা করে। এটি ডেটা এবং কার্যকারিতাকে একত্রিত করতে, কোড পুনঃব্যবহারযোগ্য করতে, এবং বাস্তব বিশ্বের ডেটা মডেলিং করার জন্য একটি কার্যকর উপায়। তবে, তার জটিলতা এবং পারফরম্যান্স বিবেচনায় রাখতে হবে।
PL/SQL একটি শক্তিশালী প্রোগ্রামিং ভাষা যা object-oriented programming (OOP) ধারণাগুলিকে সমর্থন করে। Oracle Database-এ Object-Oriented PL/SQL ব্যবহার করে আপনি Object Types তৈরি করতে পারেন, যার মধ্যে attributes (বৈশিষ্ট্য) এবং methods (পদ্ধতি) থাকে। এটি OOP এর মূল ধারণা ব্যবহার করে ডেটাবেসের ভিতরে অবজেক্ট মডেল তৈরি করতে সাহায্য করে।
Object Types হল একটি ডেটা টাইপ যা একটি অবজেক্টের বৈশিষ্ট্য এবং আচরণ (অথবা attributes এবং methods) ধারণ করে। একটি object type তৈরি করতে, আপনাকে দুটি প্রধান অংশ তৈরি করতে হয়:
Object Type সাধারণত attributes এবং methods এর সমন্বয়ে গঠিত।
Object Attributes হল সেই ডেটা ফিল্ড বা ভ্যালু যা একটি অবজেক্টে সংরক্ষিত থাকে। এটি সাধারণত variables বা fields হিসেবেও পরিচিত, যা অবজেক্টের প্রতিটি instance-এ থাকতে পারে।
ধরা যাক, আপনি একটি Person
নামক অবজেক্ট তৈরি করতে চান, যার দুটি attribute থাকবে: name
এবং age
।
CREATE OR REPLACE TYPE person AS OBJECT (
name VARCHAR2(50),
age NUMBER
);
এখানে person
অবজেক্টের দুটি attribute আছে: name
এবং age
।
এটি অবজেক্টের কোনো methods বা functionality নির্ধারণ করে।
CREATE OR REPLACE TYPE BODY person AS
MEMBER FUNCTION display_info RETURN VARCHAR2 IS
BEGIN
RETURN 'Name: ' || name || ', Age: ' || age;
END display_info;
END;
এখানে, display_info
একটি method যা person
অবজেক্টের attributes name
এবং age
ব্যবহার করে একটি স্ট্রিং আউটপুট প্রদান করবে।
Methods হল অবজেক্টের আচরণ বা কার্যকলাপ। এটি একটি ফাংশন বা প্রক্রিয়া যা অবজেক্টের attribute বা ভ্যালুর সাথে কাজ করে এবং সাধারণত একটি নির্দিষ্ট কাজ সম্পাদন করে। PL/SQL-এ methods কে member functions হিসেবে ডিফাইন করা হয়, যা অবজেক্টের attribute বা অন্যান্য ডেটার সাথে কাজ করে।
আমরা উপরে যে person
অবজেক্টটি তৈরি করেছি, সেখানে একটি display_info
method আছে, যা অবজেক্টের name এবং age attribute এর মান প্রদর্শন করবে।
CREATE OR REPLACE TYPE BODY person AS
MEMBER FUNCTION display_info RETURN VARCHAR2 IS
BEGIN
RETURN 'Name: ' || name || ', Age: ' || age;
END display_info;
END;
এখানে, display_info
হল একটি method যা name
এবং age
attribute থেকে তথ্য সংগ্রহ করে এবং একটি স্ট্রিং রিটার্ন করে।
PL/SQL object methods এ parameters পাঠানো যেতে পারে, এবং তা object-এ stored data বা attributes-এর ভিত্তিতে বিভিন্ন কার্যকলাপ সম্পাদন করতে ব্যবহার করা যায়।
CREATE OR REPLACE TYPE person AS OBJECT (
name VARCHAR2(50),
age NUMBER,
MEMBER FUNCTION greet (greeting VARCHAR2) RETURN VARCHAR2
);
এখানে, greet
একটি method যা greeting
নামক parameter গ্রহণ করে এবং সেই greeting-এর সাথে অবজেক্টের name
attribute মিশিয়ে একটি বার্তা রিটার্ন করবে।
CREATE OR REPLACE TYPE BODY person AS
MEMBER FUNCTION greet (greeting VARCHAR2) RETURN VARCHAR2 IS
BEGIN
RETURN greeting || ', ' || name;
END greet;
END;
এখন, আপনি greet
method ব্যবহার করে person
অবজেক্টের name
-এর সাথে একটি custom greeting বার্তা তৈরি করতে পারবেন।
একবার যখন আপনি একটি object type এবং তার attributes এবং methods তৈরি করবেন, তখন সেই object type-এর instance তৈরি করতে পারবেন এবং methods ব্যবহার করতে পারবেন।
DECLARE
p person;
result VARCHAR2(100);
BEGIN
-- Create an instance of the person object
p := person('John Doe', 30);
-- Call the display_info method
result := p.display_info;
-- Print result
DBMS_OUTPUT.PUT_LINE(result); -- Output: Name: John Doe, Age: 30
-- Call the greet method
result := p.greet('Hello');
-- Print result
DBMS_OUTPUT.PUT_LINE(result); -- Output: Hello, John Doe
END;
এখানে:
p
একটি person
অবজেক্টের instance।p.display_info
method অবজেক্টের name
এবং age
attribute এর মান প্রদর্শন করবে।p.greet
method ব্যবহারকারী-প্রদত্ত greeting
সহ name
-এর মান রিটার্ন করবে।Object-Oriented PL/SQL ব্যবহার করে আপনি শক্তিশালী, পুনঃব্যবহারযোগ্য এবং মডুলার কোড তৈরি করতে পারেন যা ডেটাবেসের ভিতরে বাস্তব বিশ্বে ব্যবহৃত বস্তুসমূহের প্রতিনিধিত্ব করে। Attributes এবং Methods হল এই কোডের দুটি প্রধান অংশ, যা অবজেক্টের গঠন এবং তার আচরণ নির্ধারণ করে। PL/SQL-এর মাধ্যমে OOP পদ্ধতি ব্যবহার করার ফলে আপনি আরও উন্নত এবং নমনীয় ডেটাবেস অ্যাপ্লিকেশন তৈরি করতে পারবেন।
PL/SQL-এ Object-Oriented Programming (OOP) এর ধারণা ব্যবহার করে আপনি Object Types তৈরি করতে পারেন, যা ক্লাসের মত আচরণ করে। এতে constructor functions এবং object inheritance দুটি গুরুত্বপূর্ণ ধারণা রয়েছে।
Constructor Functions হল বিশেষ ধরনের ফাংশন যা একটি Object Type ইনস্ট্যান্স (অবজেক্ট) তৈরি করতে ব্যবহৃত হয়। এগুলি পদ্ধতিগতভাবে একটি ক্লাসের কনস্ট্রাক্টরের মতো কাজ করে। যখন আপনি একটি নতুন অবজেক্ট তৈরি করেন, তখন কনস্ট্রাক্টর ফাংশনটি সেই অবজেক্টটির প্রাথমিক মান প্রদান করে।
PL/SQL-এ কনস্ট্রাক্টর ফাংশন সাধারণত INITIALIZE
নামের থাকে (যদিও এটি যে কোনো নাম হতে পারে), এবং এটি Object Type এর এক বা একাধিক ফিল্ডে প্রাথমিক মান সেট করে।
TYPE object_type IS OBJECT (
field1 datatype,
field2 datatype,
CONSTRUCTOR FUNCTION initialize (value1 datatype, value2 datatype)
RETURN OBJECT_TYPE
);
-- Object Type Definition
CREATE OR REPLACE TYPE person_type IS OBJECT (
first_name VARCHAR2(50),
last_name VARCHAR2(50),
-- Constructor Function
CONSTRUCTOR FUNCTION person_type (fname VARCHAR2, lname VARCHAR2)
RETURN SELF AS RESULT
);
/
-- Constructor Function Implementation
CREATE OR REPLACE TYPE BODY person_type IS
-- Constructor Implementation
CONSTRUCTOR FUNCTION person_type (fname VARCHAR2, lname VARCHAR2)
RETURN SELF AS RESULT IS
BEGIN
self.first_name := fname;
self.last_name := lname;
RETURN;
END;
END;
/
এখানে, person_type
নামে একটি Object Type তৈরি করা হয়েছে। এর কনস্ট্রাক্টর ফাংশন person_type
নামে এবং first_name
এবং last_name
ফিল্ডে প্রাথমিক মান সেট করে।
DECLARE
person1 person_type;
BEGIN
-- Create an object using constructor
person1 := person_type('John', 'Doe');
DBMS_OUTPUT.PUT_LINE('Name: ' || person1.first_name || ' ' || person1.last_name);
END;
এখানে, person_type
অবজেক্ট টাইপের একটি নতুন ইনস্ট্যান্স person1
তৈরি করা হয়েছে এবং কনস্ট্রাক্টর ফাংশন ব্যবহার করে প্রথম এবং শেষ নাম সেট করা হয়েছে।
Object Inheritance হল এক ধরনের বৈশিষ্ট্য যেখানে একটি অবজেক্ট টাইপ অন্য একটি অবজেক্ট টাইপ থেকে বৈশিষ্ট্য (ফিল্ড এবং ফাংশন) উত্তরাধিকারসূত্রে পায়। এই পদ্ধতির মাধ্যমে আপনি একটি সাধারণ অবজেক্ট টাইপ তৈরি করতে পারেন এবং তারপর সেটি থেকে অন্যান্য অবজেক্ট টাইপ তৈরি করতে পারেন।
PL/SQL-এ, Object Inheritance ব্যবহার করার জন্য UNDER
কীওয়ার্ডটি ব্যবহার করা হয়, যার মাধ্যমে একটি অবজেক্ট টাইপ অন্য একটি টাইপ থেকে ইনহেরিট করে।
TYPE child_object_type UNDER parent_object_type (
-- Additional fields or methods
);
-- Parent Object Type
CREATE OR REPLACE TYPE person_type IS OBJECT (
first_name VARCHAR2(50),
last_name VARCHAR2(50),
-- Constructor Function
CONSTRUCTOR FUNCTION person_type (fname VARCHAR2, lname VARCHAR2)
RETURN SELF AS RESULT
);
/
-- Parent Object Type BODY
CREATE OR REPLACE TYPE BODY person_type IS
-- Constructor Function Implementation
CONSTRUCTOR FUNCTION person_type (fname VARCHAR2, lname VARCHAR2)
RETURN SELF AS RESULT IS
BEGIN
self.first_name := fname;
self.last_name := lname;
RETURN;
END;
END;
/
-- Child Object Type Inheriting from person_type
CREATE OR REPLACE TYPE employee_type UNDER person_type (
employee_id NUMBER,
job_title VARCHAR2(50),
CONSTRUCTOR FUNCTION employee_type (fname VARCHAR2, lname VARCHAR2, emp_id NUMBER, job VARCHAR2)
RETURN SELF AS RESULT
);
/
-- Child Object Type BODY
CREATE OR REPLACE TYPE BODY employee_type IS
-- Constructor Implementation
CONSTRUCTOR FUNCTION employee_type (fname VARCHAR2, lname VARCHAR2, emp_id NUMBER, job VARCHAR2)
RETURN SELF AS RESULT IS
BEGIN
-- Call the parent constructor
person_type.initialize(fname, lname); -- Calling the parent constructor
self.employee_id := emp_id;
self.job_title := job;
RETURN;
END;
END;
/
এখানে, employee_type
হল একটি child object type যা person_type
(parent object type) থেকে ইনহেরিট করেছে। এই child type এ নতুন দুটি ফিল্ড (employee_id
এবং job_title
) রয়েছে, এবং একটি কনস্ট্রাক্টর ফাংশন employee_type
তৈরি করা হয়েছে যা parent type এর কনস্ট্রাক্টরকে কল করে।
DECLARE
emp1 employee_type;
BEGIN
-- Create an object of the child type using constructor
emp1 := employee_type('John', 'Doe', 101, 'Manager');
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || emp1.first_name || ' ' || emp1.last_name);
DBMS_OUTPUT.PUT_LINE('Employee ID: ' || emp1.employee_id);
DBMS_OUTPUT.PUT_LINE('Job Title: ' || emp1.job_title);
END;
এখানে, employee_type
অবজেক্টের একটি ইনস্ট্যান্স emp1
তৈরি করা হয়েছে এবং এর মাধ্যমে first_name
, last_name
, employee_id
, এবং job_title
প্রোপার্টি অ্যাক্সেস করা হয়েছে।
PL/SQL-এ object types, constructor functions এবং inheritance এর মাধ্যমে আপনি আধুনিক Object-Oriented Principles প্রয়োগ করে আপনার ডেটাবেস অ্যাপ্লিকেশন তৈরি করতে পারবেন।
PL/SQL-এ Object-Oriented Programming (OOP) ধারণা কিছুটা সীমিত আকারে ব্যবহার করা যায়, যেখানে আমরা Object Types, Methods, এবং Constructors তৈরি করতে পারি। PL/SQL-এ Object-Oriented PL/SQL একটি শক্তিশালী উপায় হতে পারে যখন আপনি ডেটাবেসে অবজেক্ট ভিত্তিক পদ্ধতিতে ডেটা পরিচালনা করতে চান।
PL/SQL-এ Object-Oriented Programming এর মাধ্যমে আপনি বিভিন্ন ধরনের Objects (অবজেক্ট টাইপ) তৈরি করতে পারেন, যা ডেটা এবং তার সাথে সম্পর্কিত কার্যক্রম (Methods) সংরক্ষণ করে। এর মাধ্যমে আপনি ডেটাবেসে অবজেক্টের মতো কাজ করতে পারবেন।
PL/SQL Object Types দুটি অংশে বিভক্ত হয়:
-- Object type definition
CREATE OR REPLACE TYPE Employee AS OBJECT (
emp_id NUMBER,
emp_name VARCHAR2(50),
emp_salary NUMBER,
-- Constructor to initialize the object
CONSTRUCTOR FUNCTION Employee(p_emp_id NUMBER, p_emp_name VARCHAR2, p_emp_salary NUMBER)
RETURN SELF AS RESULT,
-- Method to display employee information
MEMBER FUNCTION display_info RETURN VARCHAR2
);
-- Object type body definition
CREATE OR REPLACE TYPE BODY Employee AS
-- Constructor to initialize Employee object
CONSTRUCTOR FUNCTION Employee(p_emp_id NUMBER, p_emp_name VARCHAR2, p_emp_salary NUMBER)
RETURN SELF AS RESULT IS
BEGIN
SELF.emp_id := p_emp_id;
SELF.emp_name := p_emp_name;
SELF.emp_salary := p_emp_salary;
RETURN;
END Employee;
-- Method to display employee information
MEMBER FUNCTION display_info RETURN VARCHAR2 IS
BEGIN
RETURN 'Employee Name: ' || SELF.emp_name || ', Salary: ' || SELF.emp_salary;
END display_info;
END Employee;
PL/SQL-এ Object-Oriented ধারণা ব্যবহার করার জন্য প্রথমে আপনাকে একটি Object Type তৈরি করতে হবে। তারপর সেই Object Type এর Constructor এবং Methods ব্যবহার করে আপনাকে ডেটা কাজ করতে হবে।
DECLARE
-- Declare an instance of the Employee object
emp1 Employee;
emp_info VARCHAR2(100);
BEGIN
-- Creating an instance of the Employee object using the constructor
emp1 := Employee(101, 'John Doe', 50000);
-- Calling the display_info method to fetch employee information
emp_info := emp1.display_info;
-- Displaying employee information
DBMS_OUTPUT.PUT_LINE(emp_info);
END;
এখানে:
Employee
একটি Object Type, যা কর্মচারী (Employee) এর তথ্য সংরক্ষণ করতে ব্যবহৃত হয়।emp1
হল সেই Object এর ইনস্ট্যান্স, যা Employee
কনস্ট্রাক্টর ফাংশনের মাধ্যমে তৈরি করা হয়েছে।emp1.display_info
মেথডটি emp1
অবজেক্টের তথ্য প্রদর্শন করতে ব্যবহৃত হচ্ছে।Employee Name: John Doe, Salary: 50000
-- Create Object Type Voter
CREATE OR REPLACE TYPE Voter AS OBJECT (
voter_id NUMBER,
name VARCHAR2(50),
age NUMBER,
CONSTRUCTOR FUNCTION Voter(p_voter_id NUMBER, p_name VARCHAR2, p_age NUMBER) RETURN SELF AS RESULT,
MEMBER FUNCTION is_eligible RETURN BOOLEAN
);
-- Body for the Voter object type
CREATE OR REPLACE TYPE BODY Voter AS
-- Constructor to initialize the Voter object
CONSTRUCTOR FUNCTION Voter(p_voter_id NUMBER, p_name VARCHAR2, p_age NUMBER)
RETURN SELF AS RESULT IS
BEGIN
SELF.voter_id := p_voter_id;
SELF.name := p_name;
SELF.age := p_age;
RETURN;
END Voter;
-- Method to check if the voter is eligible to vote
MEMBER FUNCTION is_eligible RETURN BOOLEAN IS
BEGIN
IF SELF.age >= 18 THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END is_eligible;
END Voter;
DECLARE
v1 Voter;
eligibility BOOLEAN;
BEGIN
-- Creating an instance of Voter object
v1 := Voter(1, 'Alice', 25);
-- Checking eligibility
eligibility := v1.is_eligible;
IF eligibility THEN
DBMS_OUTPUT.PUT_LINE(v1.name || ' is eligible to vote.');
ELSE
DBMS_OUTPUT.PUT_LINE(v1.name || ' is not eligible to vote.');
END IF;
END;
Alice is eligible to vote.
PL/SQL Object-Oriented Programming (OOP) আপনাকে Object Types, Methods, এবং Constructors তৈরি করার সুবিধা দেয়। এর মাধ্যমে আপনি ডেটাবেসের ভিতরে অবজেক্ট-ভিত্তিক পদ্ধতিতে কাজ করতে পারেন এবং এর সাহায্যে ডেটা ম্যানিপুলেশন আরও সিস্টেমেটিক এবং কার্যকরী হয়। OOP এর সুবিধাগুলির মধ্যে Encapsulation, Code Reusability, এবং Maintainability রয়েছে, যা কোডের গঠন এবং কার্যক্ষমতা উন্নত করতে সহায়ক।
Read more